home *** CD-ROM | disk | FTP | other *** search
- userdict/xbldct 41 dict dup begin put
- /setpacking where dup{exch pop currentpacking exch true setpacking}if
- /@1 0 def/@2 0 def
- /c0 0 def/m0 0 def/y0 0 def/k0 0 def
- /c1 0 def/m1 0 def/y1 0 def/k1 0 def
- /cstp 0 def/mstp 0 def/ystp 0 def/kstp 0 def
- /blmode 0 def
- /blf 0 def
- /blstp 0 def
- /blw 0 def
- /minblnd 16 def
- /mtx matrix def
- /T true def
- /F false def
- /B{bind def}bind def
- /X{exch def}B
- /m/moveto load def
- /l/lineto load def
- /rl/rlineto load def
- /p2{pop pop}B
- /p3{pop pop pop}B
- /p4{pop pop pop pop}B
- /setcustomcolor where{pop/docust{save 1 index 4 get
- [.5 .5 .5 0 6 -1 roll] 1 setcustomcolor currentgray
- exch restore dup 1 eq exch 0 eq or}B}{/docust{F}B}ifelse
- /setseparationgray where{pop/doregblnd T def/sepgr{setseparationgray}B}
- {/doregblnd F def/sepgr systemdict/setgray get def}ifelse
- /setsepval{dup -1 eq{pop aload pop setcmykcolor}
- {setcustomcolor}ifelse currentgray}B
- /setcompval{dup -1 eq{pop aload pop}
- {exch aload p2 4{4 index mul 4 1 roll}repeat 5 -1 roll pop}ifelse}B
- /calcbnd{72 72 mtx defaultmatrix dtransform abs exch abs 2 copy lt{exch}if
- pop/languagelevel where{pop languagelevel}{1}ifelse 2 ge{pop 256}
- {/currentcolorscreen where{pop currentcolorscreen p2 3
- {3 index 2 copy lt{exch}if 5 1 roll p4}repeat}{currentscreen p2}ifelse
- div dup mul round cvi 15 add 16 idiv dup 1 lt{pop 1}if
- 16 mul dup 256 gt{pop 256}if}ifelse minblnd 2 copy lt{exch}if pop/maxblnd X}B
- /blar[
- {dup neg -128 m 0 256 rl dup add 0 rl 0 -256 rl}bind
- {dup neg dup m dup add 0 1 index rl dup 0 rl 0 exch neg rl}bind
- {dup neg dup 0 exch m 0 l dup 0 exch l 0 l}bind
- {0 0 3 -1 roll 0 360 arc}bind
- {dup mul dup add sqrt 0 0 3 -1 roll 0 360 arc}bind
- ]def
- /xblnd{/blmode X/blf X blmode 2 eq{/k1 X/y1 X/m1 X/c1 X/k0 X/y0 X/m0 X/c0 X}{/k1 X/k0 X}ifelse
- k1 k0/@1 X/@2 X blmode 2 eq{@2 @1 sub abs c1 c0 sub abs 2 copy lt
- {exch c1 c0/@1 X/@2 X}if pop m1 m0 sub abs 2 copy lt
- {exch m1 m0/@1 X/@2 X}if pop y1 y0 sub abs lt{y1 y0/@1 X/@2 X}if}if
- @1 @2 blmode 2 eq{1 exch sub exch 1 exch sub}if 2 copy lt{exch}if
- sub/blstp exch/maxblnd where{pop}{calcbnd}ifelse maxblnd mul round cvi def
- blstp 0 ne{/blw 128 blstp 1 add div def/kstp k1 k0 sub blstp div def
- blmode 2 eq{/cstp c1 c0 sub blstp div def/mstp m1 m0 sub blstp div def
- /ystp y1 y0 sub blstp div def}if}if gsave 128 128 translate newpath
- blmode 2 eq{c0 m0 y0 k0 setcmykcolor}{k0 blmode 0 eq{setgray}{sepgr}ifelse}ifelse
- 128 blar 1 get exec fill blstp 0 ne{blw 128 blar blf get blstp 1 add
- blmode 2 eq{{c0 m0 y0 k0 setcmykcolor 2 copy exec fill exch 2 index sub exch
- /c0 c0 cstp add def/m0 m0 mstp add def/y0 y0 ystp add def/k0 k0 kstp add def}repeat}
- {{k0 blmode 0 eq{setgray}{sepgr}ifelse 2 copy exec fill exch 2 index sub exch
- /k0 k0 kstp add def}repeat}ifelse p3}if grestore}B
- /xcustblnd{5 1 roll dup -2 eq{doregblnd{exch dup length 1 sub get 1 exch sub exch T F}
- {pop dup length 6 eq{dup 0 5 getinterval exch 5 get}{0 4 getinterval -1}ifelse T}ifelse}{T}ifelse
- {dup -1 eq{F}{1 index docust exch pop}ifelse}if
- 5 -2 roll dup -2 eq{doregblnd{exch dup length 1 sub get 1 exch sub exch T F}
- {pop dup length 6 eq{dup 0 5 getinterval exch 5 get}{0 4 getinterval -1}ifelse T}ifelse}{T}ifelse
- {dup -1 eq{F}{1 index docust exch pop}ifelse}if 6 -3 roll 4 -1 roll or
- {dup -2 eq{pop}{setsepval}ifelse 3 1 roll dup -2 eq{pop}{setsepval}ifelse exch 3 -1 roll 1 xblnd}
- {setcompval 6 -2 roll setcompval 8 -4 roll 9 -1 roll 2 xblnd}ifelse}B
- {setpacking}if
- end
-